package com.bj58.mis.apm.server.kylin.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

/**
 * 文本文件读取工具类
 */
public class FileUtil {

    /**
     * 文件未找到标识
     */
    public static final String FILE_NOT_FIND = "file not found";
    /**
     * 文件读取错误标识
     */
    public static final String FILE_READ_ERROR = "file read error";

    /**
     * 判断文件是否存在
     * @param str
     * @return
     */
    public static boolean isFileNotFind(String str){
        return FILE_NOT_FIND.equals(str);
    }

    /**
     * 判断文件是否读取错误
     * @param str
     * @return
     */
    public static boolean isReadError(String str){
        return FILE_READ_ERROR.equals(str);
    }

    /**
     * 判断读取是否成功
     * @param str
     * @return
     */
    public static boolean isSuccess(String str){
        return !isReadError(str) && !isFileNotFind(str);
    }

    /**
     * 读取文件内容
     * @param file 目标文件
     * @return 文件内容
     */
    public static String readFile(File file){
        StringBuilder sb = new StringBuilder();
        if(!file.exists()){
            return FILE_NOT_FIND;
        }
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader(file));
            String str = null;
            while((str = br.readLine()) != null){
                sb.append(str);
            }
            br.close();
            br = null;
        }catch (IOException e){
            sb.delete(0,sb.length());
            sb.append(FILE_READ_ERROR);
            throw new RuntimeException(e);
        }finally {
            if(br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                }
            }
        }
        return sb.toString();
    }
    /**
     * 读取文件
     * @param filePath 被读取文件路径
     * @return Stirng 返回读取的文件内容
     */
    public static String readFile(String filePath){
        File file = new File(filePath);
        return readFile(file);
    }
}
